Back to Index Page generated: Dec 20, 2024, 7:22:09 AM

Expansion DTT Atlas

Content

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description Adds a bulk-cargo hauler, similar in specs to the Anaconda, but with 4 integral Passenger Berths. Adds a bulk-cargo hauler, similar in specs to the Anaconda, but with 4 integral Passenger Berths.
Identifier DTT.Atlas 1.1.Paradox DTT.Atlas 1.1.Paradox
Title DTT Atlas DTT Atlas
Category Ships Ships
Author Paradox Paradox
Version 1.0 1.0
Tags
Required Oolite Version
Maximum Oolite Version
Required Expansions
Optional Expansions
Conflict Expansions
Information URL http://wiki.alioth.net/index.php/D.T.T._Ship_Builders_Inc. n/a
Download URL https://wiki.alioth.net/img_auth.php/6/68/DTT_Atlas_1.1.oxz n/a
License CC-BY-NC-SA 3.0 CC-BY-NC-SA 3.0
File Size n/a
Upload date 1610873324

Documentation

Also read http://wiki.alioth.net/index.php/DTT%20Atlas

Read_Me_Please.txt

"Now where did those mangy dock rats stow that 30 tons of liquor?! Come on, I'm on a deadline here!"
"What do you mean they stacked 60 tons of stinking furs on top of the fragile Rygilian Angel Food Cake contract?!"
"They've gone to lunch, and can't unload me for HOW long?!?!

Sound familiar?

Your job is cargo. Our job is giving you the tools to deliver it! Meet the D.T.T Atlas! He's the heavy lifter of the cargo business folks. With our new compartmentalized "Drop and Go" detachable cargo pod system, you will know exactly which of the ten bays holds the contract the handlers need to unload. Or, for large single contracts, simply drop the entire pod, pick up another contract, or an empty pod, and your out of the docking bay in less than 30 minutes! 
And here is the icing on the cake, Atlas comes with 4 luxuriously appointed and structurally integral passenger berths. 
"But I have always been able to have passenger berths!" You say? 
Ah but you see my friends, by making these permanent, non-removable, passenger berths an integral part of the main ships hull, and utilizing the Atlas's pre-existing atmosphere/gravity/food systems, you don't need to sacrifice a single ton of cargo space! Thats right folks, Atlas has 4 passenger berths AND 750 tons of completely free cargo space! Need more berths than that? No problem! You can always add or remove additional berths (at the usual loss of 5 tons per berth) in your cargo pod just as before!


Length 170m
Width 88.88m
Height 48.62m
	energy_recharge_rate = 3.5;
	max_cargo = 750;
	max_energy = 525;
	max_flight_pitch = .7;
	max_flight_roll = 1.0;
	max_flight_yaw = 0.7;
	max_flight_speed = 200;
	max_missiles = 8;
	thrust = 12;
	4 Structurally Integral Passenger Berths (cannot be removed)
Price 675,000
Tech lvl 9 and up.
	
To install, just unzip and place the .oxp folder into your AddOns folder.

Released under Creative Commons Attribution-Non-Commercial-Share-Alike 3.0 license yada yada yada... I HIGHLY encourage you to change/modify this ship to meet your needs, I only ask that you give me credit for the original mesh/texture. Thanks and enjoy!

Thank you to Ranthe and Norby for the test flights (they assure me this ship can be manually docked without ruining the paint job... and the ship... and the station...)! And to Smivs, Cim, and Nyarlatothep for developing the Berth Control scripts! This ROCKS!

Paradox 
cyborspasm@gmail.com

Equipment

Name Visible Cost [deci-credits] Tech-Level
Passenger Berth - takes up 5t of cargo space yes 8250 6+
Remove Passenger Berth - reclaims 5t of cargo space yes 1000 2+

Ships

Name
dtt_atlas_cargo
dtt_atlas_cargo_pod
D.T.T. Atlas
dtt_atlas_player

Models

This expansion declares no models.

Scripts

Path
Scripts/berthControl-conditions.js
/*jslint white: true, undef: true, eqeqeq: true, bitwise: true, regexp: true, newcap: true, immed: true */
/*global missionVariables, player*/


"use strict";


this.name			= "berthControl-conditions";
this.author			= "Nyarlatothep";
this.copyright		= "This script is hereby placed in the public domain.";
this.version		= "1.2";


/* contexts: npc, purchase, scripted, newShip, (loading), (damage), (portable) */
this.allowAwardEquipment = function(equipment, ship, context)
{

	// OXP hook to allow stations to forbid specific equipment
	if (context == "purchase" && player.ship.dockedStation && player.ship.dockedStation.scriptInfo["oolite-barred-equipment"])
	{
		if (player.ship.dockedStation.scriptInfo["oolite-barred-equipment"].indexOf(equipment) != -1)
		{
			return false;
		}
	}

	// fixed berthts?
	var fixedBerths = ship.scriptInfo.fixedBerths;
	if (context == "purchase" && (fixedBerths === "Yes" || fixedBerths === "Y"))
	{
		player.consoleMessage(missionVariables.berthControl_marketMessage, 1.5);
		return false;
	}
	
	if (context == "purchase" && equipment == "EQ_PASSENGER_BERTH_REMOVAL")
	{
		//var removableBerths = parseInt(missionVariables.berthControl_removableBerths);
		if (missionVariables.berthControl_removableBerths === 0)
		{
			player.consoleMessage(missionVariables.berthControl_marketMessage, 1.5);
			return false;
		}
	}


	// otherwise allowed
	return true;
}
Scripts/berthControl.js
/*jslint white: true, undef: true, eqeqeq: true, bitwise: true, regexp: true, newcap: true, immed: true */

"use strict";

// Standard attributes
this.name           = "BerthControl";
this.author         = "Smivs, Nyarlatothep";
this.copyright      = "This script is hereby placed in the public domain.";
this.version        = "1.2";
this.description    = "Passenger berths management script.";


this.playerBoughtNewShip = function(ship)
// set removable berth count when ship is bought
{
	missionVariables.berthControl_removableBerths = null;
	missionVariables.berthControl_marketMessage = null;
	
	var msg = "";
	var berths = ship.passengerCapacity;  // !
	var fixedBerths = ship.scriptInfo.fixedBerths;
	// get bool value from string
	fixedBerths = (fixedBerths === "Yes" || fixedBerths === "Y");
	
	if (fixedBerths)
	{
		msg = "This ship cannot be equipped with standard Passenger Berths.";
	}
	
	var minBerths = parseInt(ship.scriptInfo.minBerths);
	// ensure minBerth is a valid integer & it's > 0
	if (fixedBerths || (!isNaN(minBerths) && minBerths > 0))
	{
		// no berths to start with? no need for minBerths!
		if (berths > 0)
		{
			//  calculate the actual number of permanent berths
			if (fixedBerths || minBerths > berths) minBerths = berths;
			//  compose a nice formatted message...
			msg = (minBerths ===  berths ? "The " + minBerths : minBerths + " of the" ) + " Passenger Berth" + (berths === 1 ? "" : "s");
			msg += " that came with the ship cannot be " + (fixedBerths? "modified" : "removed") + " at this shipyard.";
			// save the number of removable berths for later
			missionVariables.berthControl_removableBerths =  berths - minBerths;
		}
	}
	
	if (msg !== "")
	{
		player.consoleMessage(msg, 5);
		//  save a message for later
		if (berths > 0 && minBerths > 0)
		{
			msg = minBerths + " Passenger Berths cannot be modified at this shipyard."
		}
		missionVariables.berthControl_marketMessage = msg;
	}
}

this.playerBoughtEquipment = function(equipment)
{
  if (missionVariables.berthControl_removableBerths === null)
	{
		// no berthControl mission variable? do nothing
		return;
	}
 
  if (equipment == "EQ_PASSENGER_BERTH")
    {
		missionVariables.berthControl_removableBerths++;  // update counter
    }

  if (equipment == "EQ_PASSENGER_BERTH_REMOVAL")
    {
		missionVariables.berthControl_removableBerths--;  // update counter
    }
}